/*
 * Copyright (C) 2015 The Android Open Source Project
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

#ifndef AAPT_SDK_CONSTANTS_H
#define AAPT_SDK_CONSTANTS_H

#include <utility>

#include "androidfw/StringPiece.h"

#include "Resource.h"

namespace aapt {

using ApiVersion = int;

enum : ApiVersion {
  SDK_CUPCAKE = 3,
  SDK_DONUT = 4,
  SDK_ECLAIR = 5,
  SDK_ECLAIR_0_1 = 6,
  SDK_ECLAIR_MR1 = 7,
  SDK_FROYO = 8,
  SDK_GINGERBREAD = 9,
  SDK_GINGERBREAD_MR1 = 10,
  SDK_HONEYCOMB = 11,
  SDK_HONEYCOMB_MR1 = 12,
  SDK_HONEYCOMB_MR2 = 13,
  SDK_ICE_CREAM_SANDWICH = 14,
  SDK_ICE_CREAM_SANDWICH_MR1 = 15,
  SDK_JELLY_BEAN = 16,
  SDK_JELLY_BEAN_MR1 = 17,
  SDK_JELLY_BEAN_MR2 = 18,
  SDK_KITKAT = 19,
  SDK_KITKAT_WATCH = 20,
  SDK_LOLLIPOP = 21,
  SDK_LOLLIPOP_MR1 = 22,
  SDK_MARSHMALLOW = 23,
  SDK_NOUGAT = 24,
  SDK_NOUGAT_MR1 = 25,
  SDK_O = 26,
  SDK_O_MR1 = 27,
  SDK_P = 28,
  SDK_Q = 29,
  SDK_R = 30,
  SDK_S = 31,
  SDK_S_V2 = 32,
  SDK_TIRAMISU = 33,
  SDK_UPSIDE_DOWN_CAKE = 34,
  SDK_CUR_DEVELOPMENT = 10000,
};

ApiVersion FindAttributeSdkLevel(const ResourceId& id);
std::optional<ApiVersion> GetDevelopmentSdkCodeNameVersion(android::StringPiece code_name);

}  // namespace aapt

#endif  // AAPT_SDK_CONSTANTS_H
